
		PALX11	V003	21-APR-70	10:16	PAGE 1

     1		000000			R0=%0
     2		000001			R1=%1
     3		000002			R2=%2
     4		000003			R3=%3
     5		000004			R4=%4
     6		000005			R5=%5
     7		000006			SP=%6
     8		000007			PC=%7
     9		000000			ND=R0
    10		000001			IN=R1
    11
    12		000001			TTY=1
    13		000000			KBD=0
    14		000002			LPT=2
    15
    16		000002			.RESET=2
    17		000003			.RESTART=3
    18		000011			.READ=11
    19		000004			.WAIT=4
    20		000012			.WRITE=12
    21		000001			.INIT=1
    22
    23		002000			.=2000

		PALX11	V003	21-APR-70	10:16	PAGE 2

    24	002000	012706	002000		START:	MOV	#.,SP		; SET UP THE STACK
    25	002004	000004				IOT
    26	002006	000000				.WORD	0
    27	002010	   002				.BYTE	.RESET,0	; RESET THE SYSTEM
    28	002011	   000		
    29	002012	000004				IOT
    30	002014	002000				.WORD	START
    31	002016	   003				.BYTE	.RESTART,0	; START OVER WITH AN ^P
    32	002017	   000		
    33	002020	000004				IOT
    34	002022	003356				.WORD	HELLO
    35	002024	   012				.BYTE	.WRITE,TTY	; GRECT THE TROOPS
    36	002025	   001		
    37	002026	004767	000356			JSR	PC,GETKBD
    38	002032	122767	000116	001120		CMPB	#'N,BUFI	; GET A LINE TO SEE IF WE SHOULD USE THE LPT
    39	002040	001007				BNE	INITLP
    40	002042	000004				IOT
    41	002044	003762				.WORD	TTYPE		; INIT SLOT LPT TO A TTY
    42	002046	   001				.BYTE	.INIT,LPT
    43	002047	   002		
    44	002050	000004				IOT
    45	002052	003566				.WORD	ODAD
    46	002054	   012				.BYTE	.WRITE,TTY	; TELL HIM THE FUN LIES IN FOR
    47	002055	   001		
    48	002056	000406				BR	XX1
    49	002060	000004			INITLP:	IOT
    50	002062	003620				.WORD	OGOOD
    51	002064	   012				.BYTE	.WRITE,TTY	; TELL HIM I'M HAPPY FOR HIM
    52	002065	   001		
    53	002066	000004				IOT
    54	002070	003760				.WORD	LPTYPE
    55	002072	   001				.BYTE	.INIT,LPT	; INIT LPT SLOT TO A LPT
    56	002073	   002		
    57	002074	000004			XX1:GO:	IOT
    58	002076	003524				.WORD	ENTMSG
    59	002100	   012				.BYTE	.WRITE,TTY	; TELL HIM TO TYPE A PHONE #
    60	002101	   001		
    61	002102	000004				IOT
    62	002104	002102				.WORD	.-2
    63	002106	   004				.BYTE	.WAIT,TTY	; WAIT UNTIL MESSAGE GETS OUT
    64	002107	   001		
    65	002110	000004				IOT
    66	002112	002000				.WORD	START
    67	002114	   003				.BYTE	.RESTART,0	; IF HE TYPES ^P WE START ALL OVER
    68	002115	   000		
    69	002116	004767	000266			JSR	PC,GETKBD	; WAIT FOR INPUT LINE
    70	002122	000004				IOT
    71	002124	002074				.WORD	GO
    72	002126	   003				.BYTE	.RESTART,0	; ^P WHILE PRINTING RETURNS FOR ANOTHER #
    73	002127	   000		

		PALX11	V003	21-APR-70	10:16	PAGE 3

    74	002130	012701	003160			MOV	#BUFI,R1
    75	002134	005000				CLR	R0		; COUNT THE # OF DIGITS IN THE #
    76	002136	005200			XX5:	INC	R0
    77	002140	121127	000015			CMPB	@R1,#015	;CHECK FOR A <CR>
    78	002144	001407				BEQ	XX2		;EXIT LOOP IF FOUND
    79	002146	121127	000060			CMPB	@R1,#060	;CHECK LOWER LIMIT
    80	002152	002511				BLT	XX4		;BRANCH IF NO GOOD
    81	002154	122127	000071			CMPB	(R1)+,#071	;CHECK UPPER LIMIT
    82	002160	003106				BGT	XX4		;BRANCH IF NO GOOD
    83	002162	000765				BR	XX5		;LOOP UNTIL THE END
    84	002164	005067	001566		XX2:	CLR	PAGE		; CLEAR THE PAGE #
    85	002170	010067	001572			MOV	R0,NPLUS
    86	002174	005300				DEC	R0
    87	002176	001736				BEQ	GO		;RESTART IF HE DIDN'T TYPE ANY THING
    88	002200	010067	001560			MOV	R0,N
    89	002204	004767	000252			JSR	PC,PUTPG	; GO TO THE NEXT PAGE
    90	002210	005000				CLR	ND		; ND IS THE CURRENT DIGIT
    91	002212	005200			FC1:	INC	ND		; CLEAR THE TRYS ON THIS NEW DIGIT
    92	002214	105060	004030			CLRB	NTRY(ND)
    93	002220	116001	003157		FC2:	MOVB	BUFI-1(ND),IN	; PICK UP THE CURRENT DIGIT
    94	002224	042701	177600			BIC	#177600,IN
    95	002230	162701	000060			SUB	#60,IN
    96	002234	105260	004030		FC3:	INCB	NTRY(ND)	; CONVERT TO ASCII
    97	002240	010102				MOV	IN,R2
    98	002242	006302				ASL	R2
    99	002244	006302				ASL	R2
   100	002246	006302				ASL	R2
   101	002250	006302				ASL	R2
   102	002252	116003	004030			MOVB	NTRY(ND),R3	; TAKE NTRY(ND) AND THE DIGIT AND LOOK
   103	002256	060302				ADD	R3,R2		; IN CODE FOR A POSSIBLE SUBSTITUTION
   104	002260	116202	004067			MOVB	CODE-1(R2),R2
   105	002264	120227	000040			CMPB	R2,#40
   106	002270	001426				BEQ	FC4		; IF BLANK PERMUTE NEXT DIGIT TO LEFT
   107	002272	110260	003767			MOVB	R2,MWORD-1(ND)	; ELSE OUTPUT IN THE CURRENT WORD
   108	002276	020067	001462			CMP	ND,N		; IF NOT AT LAST POSITION WE'RE NOT DONE
   109	002302	002743				BLT	FC1
   110	002304	016702	001454			MOV	N,R2
   111	002310	005003				CLR	R3
   112	002312	005203			XX3:	INC	R3
   113	002314	116305	003767			MOVB	MWORD-1(R3),R5
   114	002320	004767	000256			JSR	PC,PUTCHR	; OUTPUT THE CURRENT CHARACTER
   115	002324	005302				DEC	R2
   116	002326	003371				BGT	XX3
   117	002330	012705	000040			MOV	#40,R5
   118	002334	004767	000242			JSR	PC,PUTCHR
   119	002340	004767	000250			JSR	PC,TEST		; TEST IF BUFFER FULL
   120	002344	000733				BR	FC3		; BRANCH TO SPIN THE LEAST SIGNIFICANT DIGIT
   121	002346	005300			FC4:	DEC	ND		; SET UP TO ADVANCE DIGIT TO LEFT
   122	002350	003323				BGT	FC2
   123	002352	004767	000262			JSR	PC,PUTLN	; IF NONE WE ARE DONE
   124	002356	000004				IOT
   125	002360	003140				.WORD	FORM
   126	002362	   012				.BYTE	.WRITE,LPT	; OUTPUT CURRENT LINE PLUS LOTS OF PAPER
   127	002363	   002		
   128	002364	000004				IOT

		PALX11	V003	21-APR-70	10:16	PAGE 3-1

   129	002366	003140				.WORD	FORM
   130	002370	   012				.BYTE	.WRITE,LPT
   131	002371	   002		
   132	002372	000167	177476			JMP	GO		; GO AGAIN CHICKEN HEART!

		PALX11	V003	21-APR-70	10:16	PAGE 4

   133	002376	000004			XX4:	IOT
   134	002400	003710				.WORD	BRUCE
   135	002402	   012				.BYTE	.WRITE,TTY
   136	002403	   001		
   137	002404	000167	177464			JMP	GO		;TELL HIM TO TYPE IT AGAIN
   138	002410	000004			GETKBD:	IOT			; KEYBOARD INPUT ROUTINE
   139	002412	003152				.WORD	INBUF
   140	002414	   011				.BYTE	.READ,KBD	; READ KBD AND
   141	002415	   000		
   142	002416	000004				IOT
   143	002420	002416				.WORD	.-2
   144	002422	   004				.BYTE	.WAIT,KBD	; WAITS FOR COMPLETION
   145	002423	   000		
   146	002424	000207				RTS	PC
   147	002426	010346			ZERO:	MOV	R3,-(SP)	; BLANKS THE OUTPUT BUFFER
   148	002430	012746	000120			MOV	#80.,-(SP)
   149	002434	012703	003236			MOV	#BUFO,R3
   150	002440	010367	001310			MOV	R3,POINT
   151	002444	112723	000040			MOVB	#40,(R3)+
   152	002450	005316				DEC	@SP
   153	002452	003374				BGT	.-6
   154	002454	005726				TST	(SP)+
   155	002456	012603				MOV	(SP)+,R3
   156	002460	000207				RTS	PC
   157	002462	004567	000250		PUTPG:	JSR	R5,SAVE		; EJECTS PAPER
   158	002466	000004				IOT
   159	002470	003140				.WORD	FORM
   160	002472	   012				.BYTE	.WRITE,LPT
   161	002473	   002		
   162	002474	005067	001252			CLR	LINES
   163	002500	005267	001252			INC	PAGE		; INCREMENTS PAGE #
   164	002504	012701	003756			MOV	#PAGE,R1
   165	002510	012700	003122			MOV	#BUFO1+50,R0
   166	002514	004767	001610			JSR	PC,ITOA
   167	002520	012700	003052			MOV	#BUFO1,R0
   168	002524	012701	003160			MOV	#BUFI,R1
   169	002530	112120				MOVB	(R1)+,(R0)+
   170	002532	122761	000015	177777		CMPB	#15,-1(R1)
   171	002540	001373				BNE	.-10
   172	002542	112740	000040			MOVB	#40,-(R0)
   173	002546	012701	000012			MOV	#10.,R1
   174	002552	112720	000040			MOVB	#40,(R0)+
   175	002556	005301				DEC	R1
   176	002560	003374				BGT	.-6
   177	002562	000004				IOT
   178	002564	002776				.WORD	OUTBF1		; AND TYPES A LEADER
   179	002566	   012				.BYTE	.WRITE,LPT
   180	002567	   002		
   181	002570	004767	000156			JSR	PC,UNSAVE
   182	002574	004767	177626			JSR	PC,ZERO
   183	002600	000207				RTS	PC
   184	002602	110577	001146		PUTCHR:	MOVB	R5,@POINT	; PUTS A CHARACTER IN THE OUTPUT BUFFER
   185	002606	005267	001142			INC	POINT
   186	002612	000207				RTS	PC

		PALX11	V003	21-APR-70	10:16	PAGE 5

   187	002614	016705	001134		TEST:	MOV	POINT,R5	; SEES IF THE OUTPUT BUFFER CAN HOLD
   188	002620	066705	001142			ADD	NPLUS,R5
   189	002624	162705	003346			SUB	#BUFO+72.,R5	; ANOTHER PHONE # IF NOT PUTS OUT THE
   190	002630	003402				BLE	.+6
   191	002632	004767	000002			JSR	PC,PUTLN	; LINE SO FAR GENERATED
   192	002636	000207				RTS	PC
   193	002640	112705	000015		PUTLN:	MOVB	#15,R5
   194	002644	004767	177732			JSR	PC,PUTCHR
   195	002650	112705	000012			MOVB	#12,R5
   196	002654	004767	177722			JSR	PC,PUTCHR	; OUTPUTS THE CURRENT LINE ON SLOT LPT
   197	002660	016705	001070			MOV	POINT,R5
   198	002664	162705	003236			SUB	#BUFO,R5
   199	002670	010567	000340			MOV	R5,OUTBUF+4
   200	002674	000004				IOT
   201	002676	003230				.WORD	OUTBUF
   202	002700	   012				.BYTE	.WRITE,LPT
   203	002701	   002		
   204	002702	005267	001044			INC	LINES
   205	002706	026727	001040	000067		CMP	LINES,#55.
   206	002714	002402				BLT	.+6
   207	002716	004767	177540			JSR	PC,PUTPG
   208	002722	000004				IOT
   209	002724	002722				.WORD	.-2
   210	002726	   004				.BYTE	.WAIT,LPT	; AND WAITS FOR COMPLETION
   211	002727	   002		
   212	002730	004767	177472			JSR	PC,ZERO
   213	002734	000207				RTS	PC
   214	002736	010446			SAVE:	MOV	R4,-(SP)	; REGISTER SAVE
   215	002740	010346				MOV	R3,-(SP)
   216	002742	010246				MOV	R2,-(SP)
   217	002744	010146				MOV	R1,-(SP)
   218	002746	010046				MOV	R0,-(SP)
   219	002750	010507				MOV	R5,PC
   220	002752	016605	000014		UNSAVE:	MOV	14(SP),R5
   221	002756	012666	000012			MOV	(SP)+,12(SP)	; AND UNSAVE ROUTINES
   222	002762	012600				MOV	(SP)+,R0
   223	002764	012601				MOV	(SP)+,R1
   224	002766	012602				MOV	(SP)+,R2
   225	002770	012603				MOV	(SP)+,R3
   226	002772	012604				MOV	(SP)+,R4
   227	002774	000207				RTS	PC

		PALX11	V003	21-APR-70	10:16	PAGE 6

   228	002776	000134			OUTBF1:	.WORD	MG2E-MG2S,0,MG2E-MG2S	; LINE PRINTER HEADER LINE
   229	003000	000000		
   230	003002	000134		
   231	003004	   011			MG2S:	.ASCII	#			TELEPHONE NO. ACRONYM GENERATOR#
   232	003005	   011		
   233	003006	   011		
   234	003007	   124		
   235	003010	   105		
   236	003011	   114		
   237	003012	   105		
   238	003013	   120		
   239	003014	   110		
   240	003015	   117		
   241	003016	   116		
   242	003017	   105		
   243	003020	   040		
   244	003021	   116		
   245	003022	   117		
   246	003023	   056		
   247	003024	   040		
   248	003025	   101		
   249	003026	   103		
   250	003027	   122		
   251	003030	   117		
   252	003031	   116		
   253	003032	   131		
   254	003033	   115		
   255	003034	   040		
   256	003035	   107		
   257	003036	   105		
   258	003037	   116		
   259	003040	   105		
   260	003041	   122		
   261	003042	   101		
   262	003043	   124		
   263	003044	   117		
   264	003045	   122		
   265				
   266	003046	   015				.BYTE	15,12,12
   267	003047	   012		
   268	003050	   012		
   269	003051	   040				.ASCII	# #
   270				
   271		003052			BUFO1=.
   272		020040			QQ=20040
   273	003052	020040				.WORD	QQ,QQ,QQ,QQ,QQ,QQ,QQ,QQ,QQ,QQ,QQ,QQ,QQ,QQ,QQ
   274	003054	020040		
   275	003056	020040		
   276	003060	020040		
   277	003062	020040		
   278	003064	020040		
   279	003066	020040		
   280	003070	020040		
   281	003072	020040		
   282	003074	020040		

		PALX11	V003	21-APR-70	10:16	PAGE 6-1

   283	003076	020040		
   284	003100	020040		
   285	003102	020040		
   286	003104	020040		
   287	003106	020040		
   288	003110	   120				.ASCII	/PAGE/
   289	003111	   101		
   290	003112	   107		
   291	003113	   105		
   292				
   293	003114	020040				.WORD	QQ,QQ,QQ,QQ,QQ,QQ,QQ,QQ
   294	003116	020040		
   295	003120	020040		
   296	003122	020040		
   297	003124	020040		
   298	003126	020040		
   299	003130	020040		
   300	003132	020040		
   301	003134	   015				.BYTE	15,12,12,12
   302	003135	   012		
   303	003136	   012		
   304	003137	   012		
   305		003140			MG2E=.
   306		003140				.EVEN
   307	003140	000004			FORM:	.WORD	4.,0,4.		; FORM FEED FOR LPT
   308	003142	000000		
   309	003144	000004		
   310	003146	   012				.BYTE	12,12,12,14
   311	003147	   012		
   312	003150	   012		
   313	003151	   014		
   314	003152	000014			INBUF:	.WORD	12.,0,12.	; KBD INPUT BUFFER
   315	003154	000000		
   316	003156	000014		
   317		003160			BUFI=.
   318		003230				.=.+50
   319	003230	000122			OUTBUF:	.WORD	82.,0,80.	; LINE PRINTER OUTPUT BUFFER
   320	003232	000000		
   321	003234	000120		
   322		003236			BUFO=.
   323		003356				.=.+80.

		PALX11	V003	21-APR-70	10:16	PAGE 7

   324	003356	000140			HELLO:	.WORD	MG1E-MG1S,0,MG1E-MG1S	; MESSAGE FOR THE TROOPS
   325	003360	000000		
   326	003362	000140		
   327	003364	   015			MG1S:	.BYTE	15,12
   328	003365	   012		
   329	003366	   110				.ASCII	/HELLO SIR, MADAM, OR MISS./
   330	003367	   105		
   331	003370	   114		
   332	003371	   114		
   333	003372	   117		
   334	003373	   040		
   335	003374	   123		
   336	003375	   111		
   337	003376	   122		
   338	003377	   054		
   339	003400	   040		
   340	003401	   115		
   341	003402	   101		
   342	003403	   104		
   343	003404	   101		
   344	003405	   115		
   345	003406	   054		
   346	003407	   040		
   347	003410	   117		
   348	003411	   122		
   349	003412	   040		
   350	003413	   115		
   351	003414	   111		
   352	003415	   123		
   353	003416	   123		
   354	003417	   056		
   355				
   356	003420	   015				.BYTE	15,12
   357	003421	   012		
   358	003422	   111				.ASCII	/I CAN HARDLY TELL FROM IN HERE/
   359	003423	   040		
   360	003424	   103		
   361	003425	   101		
   362	003426	   116		
   363	003427	   040		
   364	003430	   110		
   365	003431	   101		
   366	003432	   122		
   367	003433	   104		
   368	003434	   114		
   369	003435	   131		
   370	003436	   040		
   371	003437	   124		
   372	003440	   105		
   373	003441	   114		
   374	003442	   114		
   375	003443	   040		
   376	003444	   106		
   377	003445	   122		
   378	003446	   117		

		PALX11	V003	21-APR-70	10:16	PAGE 7-1

   379	003447	   115		
   380	003450	   040		
   381	003451	   111		
   382	003452	   116		
   383	003453	   040		
   384	003454	   110		
   385	003455	   105		
   386	003456	   122		
   387	003457	   105		
   388				
   389	003460	   015				.BYTE	15,12,12
   390	003461	   012		
   391	003462	   012		
   392	003463	   104				.ASCII	/DO WE HAVE A LINE PRINTER TODAY? /
   393	003464	   117		
   394	003465	   040		
   395	003466	   127		
   396	003467	   105		
   397	003470	   040		
   398	003471	   110		
   399	003472	   101		
   400	003473	   126		
   401	003474	   105		
   402	003475	   040		
   403	003476	   101		
   404	003477	   040		
   405	003500	   114		
   406	003501	   111		
   407	003502	   116		
   408	003503	   105		
   409	003504	   040		
   410	003505	   120		
   411	003506	   122		
   412	003507	   111		
   413	003510	   116		
   414	003511	   124		
   415	003512	   105		
   416	003513	   122		
   417	003514	   040		
   418	003515	   124		
   419	003516	   117		
   420	003517	   104		
   421	003520	   101		
   422	003521	   131		
   423	003522	   077		
   424	003523	   040		
   425				
   426		003524			MG1E	=	.

		PALX11	V003	21-APR-70	10:16	PAGE 8

   427	003524	000033			ENTMSG:	.WORD	27.,0,27.	; NUMBER PLEASE
   428	003526	000000		
   429	003530	000033		
   430	003532	   015				.BYTE	15,12
   431	003533	   012		
   432	003534	   124				.ASCII	/TELEPHONE NUMBER PLEASE/
   433	003535	   105		
   434	003536	   114		
   435	003537	   105		
   436	003540	   120		
   437	003541	   110		
   438	003542	   117		
   439	003543	   116		
   440	003544	   105		
   441	003545	   040		
   442	003546	   116		
   443	003547	   125		
   444	003550	   115		
   445	003551	   102		
   446	003552	   105		
   447	003553	   122		
   448	003554	   040		
   449	003555	   120		
   450	003556	   114		
   451	003557	   105		
   452	003560	   101		
   453	003561	   123		
   454	003562	   105		
   455				
   456	003563	   015				.BYTE	15,12
   457	003564	   012		
   458		003566				.EVEN

		PALX11	V003	21-APR-70	10:16	PAGE 9

   459	003566	000024			ODAD:	.WORD	20.,0,20.	; IF HE HAS A TTY TOO BAD
   460	003570	000000		
   461	003572	000024		
   462	003574	   015				.BYTE	15,12
   463	003575	   012		
   464	003576	   117				.ASCII	/O DAD O POOR DAD/
   465	003577	   040		
   466	003600	   104		
   467	003601	   101		
   468	003602	   104		
   469	003603	   040		
   470	003604	   117		
   471	003605	   040		
   472	003606	   120		
   473	003607	   117		
   474	003610	   117		
   475	003611	   122		
   476	003612	   040		
   477	003613	   104		
   478	003614	   101		
   479	003615	   104		
   480				
   481	003616	   015				.BYTE	15,12
   482	003617	   012		
   483		003620				.EVEN
   484	003620	000061			OGOOD:	.WORD	49.,0,49.	; TELL HIM HE'S BEEN GOOD
   485	003622	000000		
   486	003624	000061		
   487	003626	   015				.BYTE	15,12
   488	003627	   012		
   489	003630	   104				.ASCII	/DO YOU REALIZE THE FUN YOU'D HAVE WITH A TTY?/
   490	003631	   117		
   491	003632	   040		
   492	003633	   131		
   493	003634	   117		
   494	003635	   125		
   495	003636	   040		
   496	003637	   122		
   497	003640	   105		
   498	003641	   101		
   499	003642	   114		
   500	003643	   111		
   501	003644	   132		
   502	003645	   105		
   503	003646	   040		
   504	003647	   124		
   505	003650	   110		
   506	003651	   105		
   507	003652	   040		
   508	003653	   106		
   509	003654	   125		
   510	003655	   116		
   511	003656	   040		
   512	003657	   131		
   513	003660	   117		

		PALX11	V003	21-APR-70	10:16	PAGE 9-1

   514	003661	   125		
   515	003662	   047		
   516	003663	   104		
   517	003664	   040		
   518	003665	   110		
   519	003666	   101		
   520	003667	   126		
   521	003670	   105		
   522	003671	   040		
   523	003672	   127		
   524	003673	   111		
   525	003674	   124		
   526	003675	   110		
   527	003676	   040		
   528	003677	   101		
   529	003700	   040		
   530	003701	   124		
   531	003702	   124		
   532	003703	   131		
   533	003704	   077		
   534				
   535	003705	   015				.BYTE	15,12
   536	003706	   012		
   537		003710				.EVEN
   538	003710	000033			BRUCE:	.WORD	27.,0,27.	;TELL HIM TO TYPE BETTER
   539	003712	000000		
   540	003714	000033		
   541	003716	   124				.ASCII	/THAT'S AN UNLISTED NUMBER/
   542	003717	   110		
   543	003720	   101		
   544	003721	   124		
   545	003722	   047		
   546	003723	   123		
   547	003724	   040		
   548	003725	   101		
   549	003726	   116		
   550	003727	   040		
   551	003730	   125		
   552	003731	   116		
   553	003732	   114		
   554	003733	   111		
   555	003734	   123		
   556	003735	   124		
   557	003736	   105		
   558	003737	   104		
   559	003740	   040		
   560	003741	   116		
   561	003742	   125		
   562	003743	   115		
   563	003744	   102		
   564	003745	   105		
   565	003746	   122		
   566				
   567	003747	   015				.BYTE	15,12
   568	003750	   012		

		PALX11	V003	21-APR-70	10:16	PAGE 9-2

   569		003752				.EVEN

		PALX11	V003	21-APR-70	10:16	PAGE 10

   570	003752	000000			LINES:	.WORD	0
   571	003754	000000			POINT:	.WORD	0
   572	003756	000000			PAGE:	.WORD	0
   573	003760	000007			LPTYPE:	.WORD	7
   574	003762	000002			TTYPE:	.WORD	2
   575	003764	000000			N:	.WORD	0
   576	003766	000000			NPLUS:	.WORD	0
   577		003770			MWORD=.				; CURRENT PHONE #
   578		004030				.=.+40
   579		004030			NTRY=.			; LIST OF WHERE WE ARE IN EACH DIGITS PERMUTATION

		PALX11	V003	21-APR-70	10:16	PAGE 11

   580		004070				.=.+40
   581					; THE TABLE CODE CONTAINS THE REPLACEMENTS
   582					; TO BE MADE FOR EACH NUMBER IN THE TELEPHONE #. IT 
   583					; CORRESPONDS TO THE TELEPHONE DIAL IN CURRENT USE.
   584	004070	   060			CODE:	.ASCII	/0               /	; REPLACEMENT FOR 0
   585	004071	   040		
   586	004072	   040		
   587	004073	   040		
   588	004074	   040		
   589	004075	   040		
   590	004076	   040		
   591	004077	   040		
   592	004100	   040		
   593	004101	   040		
   594	004102	   040		
   595	004103	   040		
   596	004104	   040		
   597	004105	   040		
   598	004106	   040		
   599	004107	   040		
   600				
   601	004110	   061				.ASCII	/1               /	; REPLACEMENT FOR 1
   602	004111	   040		
   603	004112	   040		
   604	004113	   040		
   605	004114	   040		
   606	004115	   040		
   607	004116	   040		
   608	004117	   040		
   609	004120	   040		
   610	004121	   040		
   611	004122	   040		
   612	004123	   040		
   613	004124	   040		
   614	004125	   040		
   615	004126	   040		
   616	004127	   040		
   617				
   618	004130	   101				.ASCII	/ABC             /	; REPLACEMENT FOR 2
   619	004131	   102		
   620	004132	   103		
   621	004133	   040		
   622	004134	   040		
   623	004135	   040		
   624	004136	   040		
   625	004137	   040		
   626	004140	   040		
   627	004141	   040		
   628	004142	   040		
   629	004143	   040		
   630	004144	   040		
   631	004145	   040		
   632	004146	   040		
   633	004147	   040		
   634				

		PALX11	V003	21-APR-70	10:16	PAGE 12

   635	004150	   104				.ASCII	/DEF             /	; REPLACEMENT FOR 3
   636	004151	   105		
   637	004152	   106		
   638	004153	   040		
   639	004154	   040		
   640	004155	   040		
   641	004156	   040		
   642	004157	   040		
   643	004160	   040		
   644	004161	   040		
   645	004162	   040		
   646	004163	   040		
   647	004164	   040		
   648	004165	   040		
   649	004166	   040		
   650	004167	   040		
   651				
   652	004170	   107				.ASCII	/GHI             /	; REPLACEMENT FOR 4
   653	004171	   110		
   654	004172	   111		
   655	004173	   040		
   656	004174	   040		
   657	004175	   040		
   658	004176	   040		
   659	004177	   040		
   660	004200	   040		
   661	004201	   040		
   662	004202	   040		
   663	004203	   040		
   664	004204	   040		
   665	004205	   040		
   666	004206	   040		
   667	004207	   040		
   668				
   669	004210	   112				.ASCII	/JKL             /	; REPLACEMENT FOR 5
   670	004211	   113		
   671	004212	   114		
   672	004213	   040		
   673	004214	   040		
   674	004215	   040		
   675	004216	   040		
   676	004217	   040		
   677	004220	   040		
   678	004221	   040		
   679	004222	   040		
   680	004223	   040		
   681	004224	   040		
   682	004225	   040		
   683	004226	   040		
   684	004227	   040		
   685				

		PALX11	V003	21-APR-70	10:16	PAGE 13

   686	004230	   115				.ASCII	/MNO             /	; REPLACEMENT FOR 6
   687	004231	   116		
   688	004232	   117		
   689	004233	   040		
   690	004234	   040		
   691	004235	   040		
   692	004236	   040		
   693	004237	   040		
   694	004240	   040		
   695	004241	   040		
   696	004242	   040		
   697	004243	   040		
   698	004244	   040		
   699	004245	   040		
   700	004246	   040		
   701	004247	   040		
   702				
   703	004250	   120				.ASCII	/PRS             /	; REPLACEMENT FOR 7
   704	004251	   122		
   705	004252	   123		
   706	004253	   040		
   707	004254	   040		
   708	004255	   040		
   709	004256	   040		
   710	004257	   040		
   711	004260	   040		
   712	004261	   040		
   713	004262	   040		
   714	004263	   040		
   715	004264	   040		
   716	004265	   040		
   717	004266	   040		
   718	004267	   040		
   719				
   720	004270	   124				.ASCII	/TUV             /	; REPLACEMENT FOR 8
   721	004271	   125		
   722	004272	   126		
   723	004273	   040		
   724	004274	   040		
   725	004275	   040		
   726	004276	   040		
   727	004277	   040		
   728	004300	   040		
   729	004301	   040		
   730	004302	   040		
   731	004303	   040		
   732	004304	   040		
   733	004305	   040		
   734	004306	   040		
   735	004307	   040		
   736				

		PALX11	V003	21-APR-70	10:16	PAGE 14

   737	004310	   127				.ASCII	/WXY             /	; REPLACEMENT FOR 9
   738	004311	   130		
   739	004312	   131		
   740	004313	   040		
   741	004314	   040		
   742	004315	   040		
   743	004316	   040		
   744	004317	   040		
   745	004320	   040		
   746	004321	   040		
   747	004322	   040		
   748	004323	   040		
   749	004324	   040		
   750	004325	   040		
   751	004326	   040		
   752	004327	   040		
   753				

		PALX11	V003	21-APR-70	10:16	PAGE 15

   754	004330	010046			ITOA:	MOV	R0,-(SP)	;SAVE THE DEFA
   755	004332	005046				CLR	-(SP)		;CLEAR HIGH ORDER WORD
   756	004334	011146				MOV	@R1,-(SP)	;MOVE THE WORD
   757	004336	002002				BGE	.+6	;->	;BRANCH IF HIGH ORDER BIT 0
   758	004340	005166	000002			COM	2(SP)	;  I	;SET ALL BITS IN THE WORD
   759	004344	010601				MOV	SP,R1	;<-	;SET UP THE SEFA FOR JTOA CALL
   760	004346	162706	000014			SUB	#14,SP		;EXPAND THE STACK FOR A DESTINATION
   761	004352	010600				MOV	SP,R0		;LET THE STACK BE THE DESTINATION
   762	004354	004767	000032			JSR	PC,JTOA		;CALL JTOA FOR THE REAL CONVERSION
   763	004360	010601				MOV	SP,R1		;SET UP FOR A MOVE TO REAL DEFA
   764	004362	016600	000020			MOV	20(SP),R0	;RESTORE THE USER'S DEFA
   765	004366	062701	000005			ADD	#5,R1		;THE FIRST FIVE ARE SPACES
   766	004372	012702	000007			MOV	#7,R2		;TOTAL OF SEVEN CHARACTERS TO BE MOVED
   767	004376	112120				MOVB	(R1)+,(R0)+	;<-	;MOVE A CHARACTER
   768	004400	005302				DEC	R2		;  I	;DECREMENT COUNTER
   769	004402	003375				BGT	.-4		;->	;BRANCH IF MORE TO DO
   770	004404	062706	000022			ADD	#22,SP		;REMOVE ALL JUNK FORM THE STACK
   771	004410	000207				RTS	PC		;RETURN TO THE USER

		PALX11	V003	21-APR-70	10:16	PAGE 16

   772	004412	010046			JTOA:	MOV	R0,-(SP)	;SAVE THE DEFA
   773	004414	005046				CLR	-(SP)		;THIS IS A SIGN CONTROL WORD
   774	004416	012103				MOV	(R1)+,R3	;GET THE INTEGER LOW ORDER
   775	004420	011102				MOV	@R1,R2		;AND HIGH ORDER
   776	004422	002004				BGE	.+12	;->	;IF NEGATIVE
   777	004424	005402				NEG	R2	;  I	;REVERSE THE SIGN
   778	004426	005403				NEG	R3	;  I	;AND ZOT THE SIGN CONTROL
   779	004430	005602				SBC	R2	;  I	;WORD ON THE STACK
   780	004432	005216				INC	@SP	;  I
   781	004434	012705	000012			MOV	#12,R5	;<-
   782	004440	005004				CLR	R4
   783	004442	012746	177777			MOV	#-1,-(SP)	;A NEGITIVE NUMBER FOR LATER
   784	004446	005000			M.JA01:	CLR	R0		;ZERO OUT A BUNCH OF REGISTERS
   785	004450	005001				CLR	R1
   786	004452	004767	000116			JSR	PC,M.DPID	;DIVIDE BY TEN
   787	004456	010146				MOV	R1,-(SP)	;PUSH THE REMAINDER
   788	004460	050200				BIS	R2,R0		;PUT ALL THE BITS
   789	004462	050300				BIS	R3,R0		;IN ONE REGISTER
   790	004464	005700				TST	R0		;TEST THE QUOTIENT FOR ZERO
   791	004466	001367				BNE	M.JA01		;BRANCH IF MORE TO DO
   792	004470	010605				MOV	SP,R5		;NOW COUNT THE MUMBER OF DIGITS
   793	004472	005204				INC	R4	;<-
   794	004474	005725				TST	(R5)+	;  I	;WE HAVE A NEGATIVE NUMBER SOMEWHERE
   795	004476	002375				BGE	.-4	;->
   796	004500	005304				DEC	R4		;BE REAL ACCURATE ABOUT THIS
   797	004502	012703	000013			MOV	#13,R3		;ELEVEN
   798	004506	160403				SUB	R4,R3		;R3 HAS THE NUMBER OF LEADING SPACES
   799	004510	005303				DEC	R3		;SAVE ROOM FOR A SIGN
   800	004512	016500	000002			MOV	2(R5),R0	;RESTORE THE LOST DEFA
   801	004516	005703			M.JA02:	TST	R3		;IS THE COUNT EXAUSTED
   802	004520	003404				BLE	M.JA03
   803	004522	112720	000040			MOVB	#40,(R0)+	;INSERT A SPACE (ASCII 040)
   804	004526	005303				DEC	R3
   805	004530	000772				BR	M.JA02		;BACK FOR SOME MORE
   806	004532	005715			M.JA03:	TST	@R5
   807	004534	001403				BEQ	M.JA04
   808	004536	112720	000055			MOVB	#55,(R0)+	;INSERT MINUS SIGN (ASCII 055)
   809	004542	000402				BR	M.JA05
   810	004544	112720	000040		M.JA04:	MOVB	#40,(R0)+	;OR A SPACE FOR A SIGN
   811	004550	062716	000060		M.JA05:	ADD	#60,@SP	;<-	;CONVERT TO ASCII
   812	004554	112620				MOVB	(SP)+,(R0)+;  I	;MOVE TO OUTPUT AREA
   813	004556	005716				TST	@SP	;  I	;SEE IF WE ARE DONE
   814	004560	002373				BGE	.-10	;->	;BRANCH IF MORE TO DO
   815	004562	112710	000040			MOVB	#40,@R0		;FOLLOW BY A TRAILING SPACE
   816	004566	062706	000006			ADD	#6,SP
   817	004572	000207				RTS	PC		;RETURN TO THE USER

		PALX11	V003	21-APR-70	10:16	PAGE 17

   818
   819					;	DIVISION UTILITY SUBROUTINE
   820					;	R0-R1-R2-R2=DIVIDEND
   821					;	R4-R5=DIVISOR
   822					;	R0-R1=REMAINDER AFTER DIVISION
   823					;	R2-R3=QUOTIENT AFTER DIVISION
   824					;	ENTER WITH JSR	PC,M.DPID
   825					;
   826	004574	012746	000040		M.DPID:	MOV	#40,-(SP)	;COUNTER FOR DIVISION CYCLES
   827	004600	010446				MOV	R4,-(SP)	;HIGH ORDER
   828	004602	010546				MOV	R5,-(SP)	;LOW ORDER DIVISOR TO THE STACK
   829	004604	005466	000002			NEG	2(SP)		;FORM NEGATIVE
   830	004610	005416				NEG	@SP		;VERSION OF THE DIVISOR
   831	004612	005666	000002			SBC	2(SP)
   832	004616	061601				ADD	@SP,R1
   833	004620	005500				ADC	R0		;PERFORM THE INITIAL SUBTRACTION
   834	004622	066600	000002			ADD	2(SP),R0
   835	004626	103444				BCS	M.DP50		;IF CARRY THEN OVERFLOW HAS OCCURRED
   836	004630	005046				CLR	-(SP)		;THIS IS A LONGER LASTING CARRY BIT
   837	004632	006103			M.DP40:	ROL	R3
   838	004634	006102				ROL	R2
   839	004636	006101				ROL	R1
   840	004640	006100				ROL	R0
   841	004642	005716				TST	@SP		;TEST "CARRY" INDICATOR
   842	004644	001410				BEQ	M.DP41		;IF NO "CARRY" THEN ADD ELSE SUBTRACT
   843	004646	005016				CLR	@SP		;CLEAR UP FOR NEXT TIME
   844	004650	066601	000002			ADD	2(SP),R1
   845	004654	005500				ADC	R0		;ADD -(DIVISOR)
   846	004656	005516				ADC	@SP		;SET "CARRY" BIT
   847	004660	066600	000004			ADD	4(SP),R0;<-
   848	004664	000404				BR	M.DP42
   849	004666	060501			M.DP41:	ADD	R5,R1
   850	004670	005500				ADC	R0		;ADD +(DIVISOR)
   851	004672	005516				ADC	@SP		;SET "CARRY" BIT
   852	004674	060400				ADD	R4,R0	;<-
   853	004676	005516			M.DP42:	ADC	@SP		;SET "CARRY" BIT
   854	004700	005716			M.DP43:	TST	@SP		;TEST THE UPDATE INDICATOR
   855	004702	001401				BEQ	.+4	;->	;IF ZERO FORGET IT
   856	004704	005203				INC	R3	;  I	;NO CARRY POSSIBLE HERE
   857	004706	005366	000006			DEC	6(SP)	;<-	;DECREMENT COUNTER
   858	004712	003347				BGT	M.DP40		;BRANCH IF MORE TO DO
   859	004714	006003				ROR	R3
   860	004716	103404				BCS	M.DP44
   861	004720	060501				ADD	R5,R1
   862	004722	005500				ADC	R0
   863	004724	060400				ADD	R4,R0
   864	004726	000241				CLC
   865	004730	006103			M.DP44:	ROL	R3
   866	004732	062706	000010			ADD	#10,SP		;ADJUST STACK BY 5 WORDS
   867	004736	000207				RTS	PC
   868	004740	062706	000006		M.DP50:	ADD	#6,SP
   869	004744	000262				SEV			;SET OVERFLOW BIT FOR THE USER
   870	004746	000207				RTS	PC

		PALX11	V003	21-APR-70	10:16	PAGE 18

   871		002000				.END	START

		PALX11	V003	21-APR-70	10:16	PAGE 18-1

		BRUCE	003710		PUTLN	002640	
		BUFI	003160		PUTPG	002462	
		BUFO	003236		QQ	020040	
		BUFO1	003052		R0	000000R	
		CODE	004070		R1	000001R	
		ENTMSG	003524		R2	000002R	
		FC1	002212		R3	000003R	
		FC2	002220		R4	000004R	
		FC3	002234		R5	000005R	
		FC4	002346		SAVE	002736	
		FORM	003140		SP	000006R	
		GETKBD	002410		START	002000	
		GO	002074		TEST	002614	
		HELLO	003356		TTY	000001	
		IN	000001R		TTYPE	003762	
		INBUF	003152		UNSAVE	002752	
		INITLP	002060		XX1	002074	
		ITOA	004330		XX2	002164	
		JTOA	004412		XX3	002312	
		KBD	000000		XX4	002376	
		LINES	003752		XX5	002136	
		LPT	000002		ZERO	002426	
		LPTYPE	003760		.INIT	000001	
		M.DP40	004632		.READ	000011	
		M.DP41	004666		.RESET	000002	
		M.DP42	004676		.RESTA	000003	
		M.DP43	004700		.WAIT	000004	
		M.DP44	004730		.WRITE	000012	
		M.DP50	004740	
		M.DPID	004574	
		M.JA01	004446	
		M.JA02	004516	
		M.JA03	004532	
		M.JA04	004544	
		M.JA05	004550	
		MG1E	003524	
		MG1S	003364	
		MG2E	003140	
		MG2S	003004	
		MWORD	003770	
		N	003764	
		ND	000000R	
		NPLUS	003766	
		NTRY	004030	
		ODAD	003566	
		OGOOD	003620	
		OUTBF1	002776	
		OUTBUF	003230	
		PAGE	003756	
		PC	000007R	
		POINT	003754	
		PUTCHR	002602	

		PALX11	V003	21-APR-70	10:16	PAGE 18-2



	 ERRORS DETECTED: 0

	 RUN-TIME:  5 SECONDS

	 5K CORE USED


BRUCE 	   134	   538
BUFI  	    38	    74	    93	   168	   317
BUFO  	   149	   189	   198	   322
BUFO1 	   165	   167	   271
CODE  	   104	   584
ENTMSG	    58	   427
FC1   	    91	   109
FC2   	    93	   122
FC3   	    96	   120
FC4   	   106	   121
FORM  	   125	   129	   159	   307
GETKBD	    37	    69	   138
GO    	    57	    71	    87	   132	   137
HELLO 	    34	   324
IN    	    10	    93	    94	    95	    97
INBUF 	   139	   314
INITLP	    39	    49
ITOA  	   166	   754
JTOA  	   762	   772
KBD   	    13	   141	   145
LINES 	   162	   204	   205	   570
LPT   	    14	    43	    56	   127	   131	   161	   180	   203	   211
LPTYPE	    54	   573
MG1E  	   324	   326	   426
MG1S  	   324	   326	   327
MG2E  	   228	   230	   305
MG2S  	   228	   230	   231
MWORD 	   107	   113	   577
M.DP40	   837	   858
M.DP41	   842	   849
M.DP42	   848	   853
M.DP43	   854
M.DP44	   860	   865
M.DP50	   835	   868
M.DPID	   786	   826
M.JA01	   784	   791
M.JA02	   801	   805
M.JA03	   802	   806
M.JA04	   807	   810
M.JA05	   809	   811
N     	    88	   108	   110	   575
ND    	     9	    90	    91	    92	    93	    96	   102	   107	   108	   121
NPLUS 	    85	   188	   576
NTRY  	    92	    96	   102	   579
ODAD  	    45	   459
OGOOD 	    50	   484
OUTBF1	   178	   228
OUTBUF	   199	   201	   319
PAGE  	    84	   163	   164	   572
PC    	     8	    37	    69	    89	   114	   118	   119	   123	   146	   156	   166	   181	   182	   183
	   186	   191	   192	   194	   196	   207	   212	   213	   219	   227	   762	   771	   786	   817
	   867	   870
POINT 	   150	   184	   185	   187	   197	   571
PUTCHR	   114	   118	   184	   194	   196
PUTLN 	   123	   191	   193
PUTPG 	    89	   157	   207
QQ    	   272	   273	   274	   275	   276	   277	   278	   279	   280	   281	   282	   283	   284	   285
	   286	   287	   293	   294	   295	   296	   297	   298	   299	   300
R0    	     1	     9	    75	    76	    85	    86	    88	   165	   167	   169	   172	   174	   218	   222
	   754	   761	   764	   767	   772	   784	   788	   789	   790	   800	   803	   808	   810	   812
	   815	   833	   834	   840	   845	   847	   850	   852	   862	   863
R1    	     2	    10	    74	    77	    79	    81	   164	   168	   169	   170	   173	   175	   217	   223
	   756	   759	   763	   765	   767	   774	   775	   785	   787	   832	   839	   844	   849	   861
R2    	     3	    97	    98	    99	   100	   101	   103	   104	   105	   107	   110	   115	   216	   224
	   766	   768	   775	   777	   779	   788	   838
R3    	     4	   102	   103	   111	   112	   113	   147	   149	   150	   151	   155	   215	   225	   774
	   778	   789	   797	   798	   799	   801	   804	   837	   856	   859	   865
R4    	     5	   214	   226	   782	   793	   796	   798	   827	   852	   863
R5    	     6	   113	   117	   157	   184	   187	   188	   189	   193	   195	   197	   198	   199	   219
	   220	   781	   792	   794	   800	   806	   828	   849	   861
SAVE  	   157	   214
SP    	     7	    24	   147	   148	   152	   154	   155	   214	   215	   216	   217	   218	   220	   221
	   222	   223	   224	   225	   226	   754	   755	   756	   758	   759	   760	   761	   763	   764
	   770	   772	   773	   780	   783	   787	   792	   811	   812	   813	   816	   826	   827	   828
	   829	   830	   831	   832	   834	   836	   841	   843	   844	   846	   847	   851	   853	   854
	   857	   866	   868
START 	    24	    30	    66	   871
TEST  	   119	   187
TTY   	    12	    36	    47	    52	    60	    64	   136
TTYPE 	    41	   574
UNSAVE	   181	   220
XX1   	    48	    57
XX2   	    78	    84
XX3   	   112	   116
XX4   	    80	    82	   133
XX5   	    76	    83
ZERO  	   147	   182	   212
.INIT 	    21	    42	    55
.READ 	    18	   140
.RESET	    16	    27
.RESTA	    17	    31	    67	    72
.WAIT 	    19	    63	   144	   210
.WRITE	    20	    35	    46	    51	    59	   126	   130	   135	   160	   179	   202
ADC   	   833	   845	   846	   850	   851	   853	   862
ADD   	   103	   188	   765	   770	   811	   816	   832	   834	   844	   847	   849	   852	   861	   863
	   866	   868
ASL   	    98	    99	   100	   101
BCS   	   835	   860
BEQ   	    78	    87	   106	   807	   842	   855
BGE   	   757	   776	   795	   814
BGT   	    82	   116	   122	   153	   176	   769	   858
BIC   	    94
BIS   	   788	   789
BLE   	   190	   802
BLT   	    80	   109	   206
BNE   	    39	   171	   791
BR    	    48	    83	   120	   805	   809	   848
CLC   	   864
CLR   	    75	    84	    90	   111	   162	   755	   773	   782	   784	   785	   836	   843
CLRB  	    92
CMP   	   108	   205
CMPB  	    38	    77	    79	    81	   105	   170
COM   	   758
DEC   	    86	   115	   121	   152	   175	   768	   796	   799	   804	   857
INC   	    76	    91	   112	   163	   185	   204	   780	   793	   856
INCB  	    96
IOT   	    25	    29	    33	    40	    44	    49	    53	    57	    61	    65	    70	   124	   128	   133
	   138	   142	   158	   177	   200	   208
JMP   	   132	   137
JSR   	    37	    69	    89	   114	   118	   119	   123	   157	   166	   181	   182	   191	   194	   196
	   207	   212	   762	   786
MOV   	    24	    74	    85	    88	    97	   110	   117	   147	   148	   149	   150	   155	   164	   165
	   167	   168	   173	   187	   197	   199	   214	   215	   216	   217	   218	   219	   220	   221
	   222	   223	   224	   225	   226	   754	   756	   759	   761	   763	   764	   766	   772	   774
	   775	   781	   783	   787	   792	   797	   800	   826	   827	   828
MOVB  	    93	   102	   104	   107	   113	   151	   169	   172	   174	   184	   193	   195	   767	   803
	   808	   810	   812	   815
NEG   	   777	   778	   829	   830
ROL   	   837	   838	   839	   840	   865
ROR   	   859
RTS   	   146	   156	   183	   186	   192	   213	   227	   771	   817	   867	   870
SBC   	   779	   831
SEV   	   869
SUB   	    95	   189	   198	   760	   798
TST   	   154	   790	   794	   801	   806	   813	   841	   854
.ASCII	   231	   269	   288	   329	   358	   392	   432	   464	   489	   541	   584	   601	   618	   635
	   652	   669	   686	   703	   720	   737
.BYTE 	    27	    31	    35	    42	    46	    51	    55	    59	    63	    67	    72	   126	   130	   135
	   140	   144	   160	   179	   202	   210	   266	   301	   310	   327	   356	   389	   430	   456
	   462	   481	   487	   535	   567
.END  	   871
.EVEN 	   306	   458	   483	   537	   569
.WORD 	    26	    30	    34	    41	    45	    50	    54	    58	    62	    66	    71	   125	   129	   134
	   139	   143	   159	   178	   201	   209	   228	   273	   293	   307	   314	   319	   324	   427
	   459	   484	   538	   570	   571	   572	   573	   574	   575	   576
                                                                                                                                                                                        